/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package agb.servlets;



import agb.Modelo.Archivos;
import agb.Modelo.Docente;
import agb.Modelo.GaleriaFotos;
import agb.Modelo.ProyectosComunicados;
import agb.Modelo.UsuarioWeb;
import com.google.gson.Gson;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.*;



import org.apache.commons.fileupload.*;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpSession;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;


/**
 *
 * @author Inicial
 */
public class ServletSubida extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String accion = request.getParameter("accion");
            System.out.println(accion);
            if(accion.equalsIgnoreCase("registroGaleriaINV")){
                RegistraGaleriaINV(request, response);
            }   else{  if(accion.equalsIgnoreCase("registroGaleria")){
                    registroGaleria(request, response);
                }
                else if(accion.equalsIgnoreCase("registraSubGaleria")){
                    RegistraSubGaleria(request, response);
                }else{
                    if(accion.equalsIgnoreCase("comboGaleria")){
                        comboGaleria(request, response);
                    }else{
                        if(accion.equalsIgnoreCase("registraFoto")){
                            subirFotos(request, response);
                        }else{
                            if(accion.equalsIgnoreCase("galeria")){
                                listaGalerias(request, response);
                            }else{
                                if(accion.equalsIgnoreCase("SubGaleria")){
                                     listaFotos(request, response);                             
                                }else{
                                    if(accion.equalsIgnoreCase("paginar")){
                                       paginarFotos(request, response);
                                    }else{
                                        if(accion.equalsIgnoreCase("modificaGaleria")){
                                            ModificaGaleria(request, response);
                                        }else{
                                            if(accion.equalsIgnoreCase("modificaSubGaleria")){
                                                ModificaSubGaleria(request, response);
                                            }else{
                                                if(accion.equalsIgnoreCase("buscaFoto")){
                                                    BuscaFoto(request, response);
                                                }else{
                                                    if(accion.equalsIgnoreCase("registraArchivo")){
                                                        
                                                        subirArchivos(request, response);
                                                       
                                                    }else {
                                                        if(accion.equalsIgnoreCase("modificaArchivo")){
                                                            modificaArchivos(request, response);
                                                        }else{
                                                            if(accion.equalsIgnoreCase("eliminaArchivo")){
                                                                eliminaArchivo(request, response);
                                                            }else{
                                                                if(accion.equalsIgnoreCase("archivosGrado")){
                                                                    listaArchivos(request, response);
                                                                }else{
                                                                    if(accion.equalsIgnoreCase("paginaArchivo")){
                                                                        paginarArchivos(request, response);
                                                                    }else{
                                                                        if(accion.equalsIgnoreCase("subirArchivo")){
                                                                            subirArchivosServidor(request, response);
                                                                        }else if(accion.equalsIgnoreCase("descargas")){
                                                                            obtenerGradosDescarga(request, response);
                                                                        }else if(accion.equalsIgnoreCase("noticias")){
                                                                            obtenerNoticias(request, response);
                                                                        }else if(accion.equalsIgnoreCase("detalleGaleria")) {
                                                                            detalleGaleria(request, response);
                                                                        }
                                                                        else  if(accion.equalsIgnoreCase("galeriaAdministrador")){
                                                                            galeriaAdministrador(request, response);
                                                                        }else if (accion.equalsIgnoreCase("eliminarGaleria")){
                                                                            eliminarGaleria(request, response);
                                                                        }
                                                                            if(accion.equalsIgnoreCase("listaGalerias"))
                                                                        {
                                                                            obtenerListaGalerias(request, response);
                                                                        }
                                                                        else
                                                                        { if(accion.equalsIgnoreCase("listaSubGalerias"))
                                                                            {
                                                                                listarSubGalerias(request,response);
                                                                            }
                                                                            else
                                                                            {
                                                                                if(accion.equalsIgnoreCase("obtenerSubGaleria"))
                                                                                {
                                                                                    obtenerGaleria(request,response);
                                                                                }
                                                                                else
                                                                                {
                                                                                    if(accion.equalsIgnoreCase("eliminarSubGaleria"))
                                                                                    {
                                                                                        EliminarSubGaleria(request,response);
                                                                                    }
                                                                                }
                                                                            }
                                                                        }

                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }
    
    protected void obtenerGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
 {
      response.setContentType("text/html;charset=UTF-8");
      PrintWriter out = response.getWriter();
       try 
        {
            GaleriaFotos oSubGaleria = GaleriaFotos.BuscaSubGaleria(Integer.parseInt(request.getParameter("obtenerGaleria")));
            System.out.println("Salida: "+oSubGaleria);
            out.println(new Gson().toJson(oSubGaleria));
        }
       catch (Exception ex) 
       {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally 
       {
            out.close();
        }
 }
    
 protected void listarSubGalerias(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
 {
       response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try 
        {
              ArrayList<GaleriaFotos> LGalerias  = new ArrayList<GaleriaFotos>();
              LGalerias = GaleriaFotos.listaSubGaleriasPorGaleria();
              StringBuilder sb = new StringBuilder();
              for(GaleriaFotos user:LGalerias)
                 {
                     String actividad="INACTIVO";
                     if(user.getActivo().equalsIgnoreCase("Y"))
                     {
                         actividad="ACTIVO";
                         
                     }
                     sb.append("[\"" +"<input class='link' valor='"+user.getCodSubGaleria()+"' type='checkbox'/>"+"\",\""+ user.getNombreGaleria()+"\",\"" +user.getNombreSubgaleria()+ "\",\"" +actividad+ "\",\"<a href='javascript:showDialogs("+ user.getCodSubGaleria()+ ");' class='edit_icon' title='Editar'></a>\"],");
                 }
                 
                 String str = sb.substring(0,sb.length()-1);
             
                     if(str.equals(""))
                     {
                                str = "[]";
                     }else
                     {
                                str = "[" + str + "]";
                     }
                    ArrayList<GaleriaFotos> fotos = new ArrayList<GaleriaFotos>();  
                   fotos=GaleriaFotos.listaGaleriasActivo();  
              System.out.println("Galeria: "+LGalerias);
              request.setAttribute("galeria", fotos);
              request.setAttribute("subGaleria",str);
              this.getServletContext().getRequestDispatcher("/dinamica/administrador/Galeria/mantenimientoSubGaleria.jsp").forward(request,response);
        }
        catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
 }
    
    
    protected void RegistraGaleriaINV(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
//            HttpSession session = request.getSession(true);
            //RequestDispatcher rd;
           
//            if(!request.getParameter("codGaleria").equals(""))
//            {
//                oGaleria.setCodGaleria(Integer.parseInt(request.getParameter("codGaleria")));
//                String nombre = request.getParameter("nombre");
//                String fechaDesde = request.getParameter("fechaDesde");
//                String fechaHasta = request.getParameter("fechaHasta");
//                String activo = request.getParameter("activo");
//                
//                
//                oGaleria.setNombreGaleria(nombre);
//                oGaleria.setFechaDesdeGaleria(fechaDesde);
//                oGaleria.setFechaHastaGalera(fechaHasta);
//                oGaleria.setActivo(activo);
//                
//                GaleriaFotos.actualizaGaleria(oGaleria);
//            }
//            else {
            
           
                String nombre = request.getParameter("nombre");
                String fechaDesde = request.getParameter("fechaDesde");
                String fechaHasta = request.getParameter("fechaHasta");
                
                 GaleriaFotos oGaleria = new GaleriaFotos();
                 if(!request.getParameter("codGaleria").equals(""))
                 {
                     oGaleria.setCodGaleria((Integer.parseInt(request.getParameter("codGaleria"))));
                 }
                
                oGaleria.setNombreGaleria(nombre);
                oGaleria.setFechaDesdeGaleria(fechaDesde);
                oGaleria.setFechaHastaGalera(fechaHasta);
                oGaleria.setActivo(nombre);
                
                if(oGaleria.getCodGaleria()>0){
                GaleriaFotos.actualizaGaleria(oGaleria);
            }else{
                GaleriaFotos.registroGaleria(oGaleria);
            }
              
//                
//            }
            
            ArrayList<GaleriaFotos> LGalerias  = new ArrayList<GaleriaFotos>();
            LGalerias = GaleriaFotos.listaGalerias();
            StringBuilder sb = new StringBuilder();
            for(GaleriaFotos actual:LGalerias){
                sb.append("[\"" 
                        + "<input type='checkbox' class='file' value='" 
                        + actual.getCodGaleria() + "'/>" 
                        + "\",\"" + actual.getNombreGaleria() 
                        + "\",\"" + actual.getFechaDesdeGaleria() 
                        + "\",\"" + actual.getFechaHastaGalera() 
                        + "\",\"" + actual.getActivo()
                        + "\",\"<a href='javascript:showDialog("+ actual.getCodGaleria() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
               out.println(str);
            System.out.println("str: " + str);
//            oGaleria.setNombreGaleria(request.getParameter("txtGaleria"));
//            oGaleria.setFechaDesdeGaleria(request.getParameter("txtFechaDesde"));
//            oGaleria.setFechaHastaGalera(request.getParameter("txtFechaHasta"));
//            session.setAttribute("mensaje", GaleriaFotos.registroGaleria(oGaleria) ? "Galeria Registrada con Exito!!" : "Galeria No Registrada!!");
//            request.setAttribute("r_estilo", true);
//            rd=this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_registroGalerias.jsp");
//            rd.forward(request,response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }
    
    
    protected void registroGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       // HttpSession session = request.getSession(true);
        try {
            
            this.getServletContext().getRequestDispatcher("/dinamica/administrador/Galeria/GaleriaForm.jsp").forward(request, response);
        } finally {
            out.close();
        }
    }
    
    
    
    protected void galeriaAdministrador(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();        
        try {
              ArrayList<GaleriaFotos> LGalerias  = new ArrayList<GaleriaFotos>();
              LGalerias = GaleriaFotos.listaGalerias();
              StringBuilder sb = new StringBuilder();
              for(GaleriaFotos actual:LGalerias){
                sb.append("[\"" 
                        + "<input type='checkbox' class='file' value='" 
                        + actual.getCodGaleria() + "'/>" 
                        + "\",\"" + actual.getNombreGaleria() 
                        + "\",\"" + actual.getFechaDesdeGaleria() 
                        + "\",\"" + actual.getFechaHastaGalera() 
                        + "\",\"" + actual.getActivo()
                        + "\",\"<a href='javascript:showDialog("+ actual.getCodGaleria() + ");' class='edit_icon' title='Editar'></a>\"],");
            }  
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
            System.out.println("str: " + str);
            
            request.setAttribute("galerias", str);

            this.getServletContext().getRequestDispatcher("/dinamica/administrador/Galeria/mantenimientoGaleria.jsp").forward(request,response);
        } finally {
            out.close();
        }
    }
    
    protected void obtenerGradosDescarga(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            List<Docente> LGradosPrimaria = new ArrayList<Docente> ();
            LGradosPrimaria = Docente.NombresNivelGradoCodNivelGradoPrimaria();
            
            List<Docente> LGradosSecundaria = new ArrayList<Docente>();
            LGradosSecundaria = Docente.NombresNivelGradoCodNivelGradoSecundaria();
            
            request.setAttribute("lgradosP", LGradosPrimaria);
            request.setAttribute("lgradosS", LGradosSecundaria);
            this.getServletContext().getRequestDispatcher("/estatica/grahamBellDescargas.jsp").forward(request, response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }
    
    protected void obtenerNoticias(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            List<UsuarioWeb> LAnuncios = new ArrayList<UsuarioWeb> ();
            LAnuncios = UsuarioWeb.listaAnunciosWebActivos();
            System.out.println("NOTICIASSSS");
            request.setAttribute("noticias", LAnuncios);
            this.getServletContext().getRequestDispatcher("/estatica/grahambellNoticias.jsp").forward(request, response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }
    
    protected void obtenerListaGalerias(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            List<GaleriaFotos> LGalerias = new ArrayList<GaleriaFotos> ();
            LGalerias = GaleriaFotos.listaGaleriasActivo();
            
            request.setAttribute("galerias", LGalerias);
            this.getServletContext().getRequestDispatcher("/estatica/grahamBellGaleria.jsp").forward(request, response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }


    
    protected void paginarArchivos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
           int codNG = Integer.parseInt(request.getParameter("codNivelGrado"));
           request.setAttribute("nombreGrado", request.getParameter("grado"));
           request.setAttribute("archivos", new Archivos().listaArchivosPagina(Integer.parseInt(request.getParameter("codNivelGrado")), Integer.parseInt(request.getParameter("desde"))));
           request.setAttribute("pagina", Integer.parseInt(request.getParameter("pagina")));
           request.setAttribute("codNivelGrado", codNG);
           request.setAttribute("numeroPaginas", new Archivos().numeroPaginasArchivos(codNG));
           this.getServletContext().getRequestDispatcher("/estatica/grahamBellRecursos_Lecturas.jsp").forward(request, response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }

   protected void RegistraSubGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
            String mensaje="fallo";
            GaleriaFotos oGaleria = new GaleriaFotos();
            oGaleria.setNombreSubgaleria(request.getParameter("txtSubGaleria"));
            oGaleria.setCodGaleria(Integer.parseInt(request.getParameter("cmbGaleria")));
            if(GaleriaFotos.registroSubGaleria(oGaleria))
            {
                mensaje="Correcto";
            }
             ArrayList<GaleriaFotos> LGalerias  = new ArrayList<GaleriaFotos>();
              LGalerias = GaleriaFotos.listaSubGaleriasPorGaleria();
              GaleriaFotos f=new GaleriaFotos();
              f.setMensaje(mensaje);
              LGalerias.add(f);
              out.println(new Gson().toJson(LGalerias));
              
            
            
          //  session.setAttribute("mensaje", GaleriaFotos.registroSubGaleria(oGaleria) ? "Sub Galeria Registrada con Exito!!" : "Sub Galeria No Registrada!!");
            //request.setAttribute("r_estilo", true);
            //rd=this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_registroSubGalerias.jsp");
            //rd.forward(request,response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }

    protected void comboGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
            int codGaleria = Integer.parseInt(request.getParameter("codGaleria"));
            Vector<GaleriaFotos> LSgalerias = new Vector<GaleriaFotos>();
            LSgalerias = GaleriaFotos.listaSubGaleriasPorGaleria(codGaleria);
            session.setAttribute("listaGalerias", LSgalerias);
            session.setAttribute("codGaleria", codGaleria);
            request.setAttribute("r_estilo", true);
            rd=this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_registroFotos.jsp");
            rd.forward(request,response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }

    protected void subirFotos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
     GaleriaFotos oFoto = new GaleriaFotos();
     HttpSession session = request.getSession(true);
     RequestDispatcher rd;
      boolean isMultipart = ServletFileUpload.isMultipartContent(request);      
            if (isMultipart){
                DiskFileItemFactory factory = new DiskFileItemFactory();
                // tamaño por encima del cual los ficheros son escritos directamente en disco
                factory.setSizeThreshold(4096);
                // directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
                factory.setRepository(new File( File.separatorChar + "usr" + File.separatorChar + "tomcat" + File.separatorChar + "webapps" + File.separatorChar + "Imagenes"  + File.separatorChar + "Imagenes" + File.separatorChar));
                //factory.setRepository(new File("c:\\" ));
                ServletFileUpload upload = new ServletFileUpload(factory);
                //El tamaño maximo de los achivos a cargar
                upload.setSizeMax(1024 * 512);
                // ordenamos procesar los ficheros
                List items = upload.parseRequest(request);
                for (int i = 0; i < items.size(); i++){
                   int cod = GaleriaFotos.ultimoCodigo();
                    FileItem item = (FileItem) items.get(i);
                    //Si es un archivo lo guardamos como lo tenias
                    if (item.isFormField()){
                        if(item.getFieldName().equalsIgnoreCase("txtTitulo")){
                            oFoto.setTituloFoto(item.getString());
                        }
                        if(item.getFieldName().equalsIgnoreCase("cmbSubGaleria")){
                            oFoto.setCodSubGaleria(Integer.parseInt(item.getString()));
                        }
                       }
                    //Si no es un archivo solo mostramos su valor (en este caso el del inputy llamado txt)
                    else{
                         String fileName = item.getName();
                        // construimos un objeto file para recuperar el trayecto completo
                        File fichero = new File(fileName);
                        // nos quedamos solo con el nombre y descartamos el path
                        fichero = new File(File.separatorChar + "usr" + File.separatorChar + "tomcat" + File.separatorChar + "webapps" + File.separatorChar + "Imagenes"  + File.separatorChar + "Imagenes" + File.separatorChar + "foto" + cod + ".jpg");
                        //fichero = new File("c:\\pruebas\\" + "foto" + cod + ".jpg");
                        // escribimos el fichero colgando del nuevo path
                        item.write(fichero);
                        oFoto.setNombreFoto("foto" + cod + ".jpg");
                        //File uploadedFile = new File(directorioDestino, "fotito. Jpg");                       
                        if(!fileName.equalsIgnoreCase("")){
                            session.setAttribute("mensaje", GaleriaFotos.registroFoto(oFoto) ? "Foto Registrada con Exito!!" : "Foto No Registrada!!");
                        }               
                    }
                

                }
                request.setAttribute("r_estilo", true);
                rd=this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_registroFotos.jsp");
                rd.forward(request,response);
               
            }
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }


  
  protected void listaGalerias(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            List<GaleriaFotos> LGalerias = new ArrayList<GaleriaFotos> ();
            int codGaleria = Integer.parseInt(request.getParameter("codGaleria"));
            String galeria = request.getParameter("nombreGaleria");
            LGalerias = GaleriaFotos.listaSubGaleriasPorGaleria(codGaleria);
            int numPaginas = GaleriaFotos.numeroPaginasSec(LGalerias.get(0).getCodSubGaleria());
            List<GaleriaFotos> LFotos = new ArrayList<GaleriaFotos> ();
            LFotos = GaleriaFotos.listaFotosSubGaleriaSec(LGalerias.get(0).getCodSubGaleria(), 0);
            int codSG =  LGalerias.get(0).getCodSubGaleria();
            
            request.setAttribute("galerias", LGalerias);
            request.setAttribute("nombreGaleria", galeria);
            request.setAttribute("listaFotos", LFotos);
            request.setAttribute("numeroPaginas", numPaginas);
            request.setAttribute("pagina", 1);
            request.setAttribute("codSubG", codSG);
            request.setAttribute("codGaleria", codGaleria);
            this.getServletContext().getRequestDispatcher("/estatica/grahamBellGaleriaFotos.jsp").forward(request, response);
            
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }



    
    protected void listaFotos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            int codSubGaleria = Integer.parseInt(request.getParameter("codSubGaleria"));

            List<GaleriaFotos> LGalerias = new ArrayList<GaleriaFotos> ();
            int codGaleria = Integer.parseInt(request.getParameter("codGaleria"));
            String galeria = request.getParameter("nombreGaleria");
            LGalerias = GaleriaFotos.listaSubGaleriasPorGaleria(codGaleria);
            int numPaginas = GaleriaFotos.numeroPaginasSec(codSubGaleria);
            List<GaleriaFotos> LFotos = new ArrayList<GaleriaFotos> ();
            LFotos = GaleriaFotos.listaFotosSubGaleriaSec(codSubGaleria, 0);
            int codSG =  codSubGaleria;
            
            request.setAttribute("galerias", LGalerias);
            request.setAttribute("nombreGaleria", galeria);
            request.setAttribute("listaFotos", LFotos);
            request.setAttribute("numeroPaginas", numPaginas);
            request.setAttribute("pagina", 1);
            request.setAttribute("codSubG", codSG);
            request.setAttribute("codGaleria", codGaleria);
            this.getServletContext().getRequestDispatcher("/estatica/grahamBellGaleriaFotos.jsp").forward(request, response);
           

        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }



 
   
   protected void paginarFotos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            int codSubGaleria = Integer.parseInt(request.getParameter("codSubGaleria"));
            int desde = Integer.parseInt(request.getParameter("inicio"));   
            List<GaleriaFotos> LGalerias = new ArrayList<GaleriaFotos> ();
            int codGaleria = Integer.parseInt(request.getParameter("codGaleria"));
            String galeria = request.getParameter("nombreGaleria");
             String pagina = request.getParameter("pagina");
            LGalerias = GaleriaFotos.listaSubGaleriasPorGaleria(codGaleria);
            int numPaginas = GaleriaFotos.numeroPaginasSec(codSubGaleria);
            List<GaleriaFotos> LFotos = new ArrayList<GaleriaFotos> ();
            LFotos = GaleriaFotos.listaFotosSubGaleriaSec(codSubGaleria, desde);
            int codSG =  codSubGaleria;
            
            request.setAttribute("galerias", LGalerias);
            request.setAttribute("nombreGaleria", galeria);
            request.setAttribute("listaFotos", LFotos);
            request.setAttribute("numeroPaginas", numPaginas);
            request.setAttribute("pagina", pagina);
            request.setAttribute("codSubG", codSG);            
            request.setAttribute("codGaleria", codGaleria);
            this.getServletContext().getRequestDispatcher("/estatica/grahamBellGaleriaFotos.jsp").forward(request, response);
            
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }


   protected void ModificaGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
            GaleriaFotos oGaleria = new GaleriaFotos();
            oGaleria.setCodGaleria(Integer.parseInt(request.getParameter("codGaleria")));
            oGaleria.setNombreGaleria(request.getParameter("txtGaleria"));
            oGaleria.setFechaDesdeGaleria(request.getParameter("txtFechaDesde"));
            oGaleria.setFechaHastaGalera(request.getParameter("txtFechaHasta"));
            oGaleria.setActivo(request.getParameter("activo"));
            session.setAttribute("mensaje", GaleriaFotos.actualizaGaleria(oGaleria) ? "Galeria Modificada con Exito!!" : "Galeria No Fue Modificada!!");
            request.setAttribute("r_estilo", true);
            rd=this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_consultaGalerias.jsp");
            rd.forward(request,response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }
protected void EliminarSubGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try 
        {
            HttpSession session = request.getSession(true);
      
            String []todo=request.getParameter("eliminarCodigo").split("-");
            for(String parte:todo)
            {
                GaleriaFotos.eliminarSubGaleria(Integer.parseInt(parte));
          
            }
              ArrayList<GaleriaFotos> LGalerias  = new ArrayList<GaleriaFotos>();
              LGalerias = GaleriaFotos.listaSubGaleriasPorGaleria();
              GaleriaFotos f=new GaleriaFotos();
              LGalerias.add(f);
              out.println(new Gson().toJson(LGalerias));
        }
        catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
}
   protected void ModificaSubGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
           // RequestDispatcher rd;
            GaleriaFotos oGaleria = new GaleriaFotos();
            oGaleria.setCodSubGaleria(Integer.parseInt(request.getParameter("codSubGaleria")));
            oGaleria.setNombreSubgaleria(request.getParameter("txtSubGaleria"));
            oGaleria.setCodGaleria(Integer.parseInt(request.getParameter("cmbGaleria")));
            oGaleria.setActivo(request.getParameter("activo"));
            String mensaje="Fallo";
//            out.println(oGaleria.getCodGaleria());
//            out.println(oGaleria.getCodSubGaleria());
//            out.println(oGaleria.getNombreSubgaleria());
//            out.println(oGaleria.getActivo());
            if(GaleriaFotos.actualizaSubGaleria(oGaleria))
            {
                mensaje="Correcto";
            }
            
               ArrayList<GaleriaFotos> LGalerias  = new ArrayList<GaleriaFotos>();
              LGalerias = GaleriaFotos.listaSubGaleriasPorGaleria();
              GaleriaFotos f=new GaleriaFotos();
              f.setMensaje(mensaje);
              LGalerias.add(f);
              out.println(new Gson().toJson(LGalerias));
            
         //   session.setAttribute("mensaje", GaleriaFotos.actualizaSubGaleria(oGaleria) ? "Sub Galeria Modificada con Exito!!" : "Sub Galeria No Fue Modificada!!");
          //  request.setAttribute("r_estilo", true);
          //  rd=this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_consultaSubGalerias.jsp?codGaleria=" + oGaleria.getCodGaleria());
           // rd.forward(request,response);
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }

     protected void BuscaFoto(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
            int codFoto = Integer.parseInt(request.getParameter("codFoto"));
            GaleriaFotos oFoto = new GaleriaFotos();
            oFoto = GaleriaFotos.BuscaFoto(codFoto);
            session.setAttribute("foto", oFoto);
            Vector<GaleriaFotos> LSgalerias = new Vector<GaleriaFotos>();
            LSgalerias = GaleriaFotos.listaSubGaleriasPorGaleria(oFoto.getCodGaleria());
            session.setAttribute("listaGalerias", LSgalerias);
            session.setAttribute("codGaleria", oFoto.getCodGaleria());
            request.setAttribute("r_estilo", true); 
            rd=this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_modificaFotos.jsp");
            rd.forward(request,response);
                       
            
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }

  protected void subirArchivos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        RequestDispatcher rd;
        try {
            Archivos oArchivo = new Archivos();
            int cod = Archivos.ultimoCodigo();
            boolean isMultipart = ServletFileUpload.isMultipartContent(request);
            if (isMultipart){
                DiskFileItemFactory factory = new DiskFileItemFactory();
                // tamaño por encima del cual los ficheros son escritos directamente en disco
                factory.setSizeThreshold(4096);
                // directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
                factory.setRepository(new File( File.separatorChar + "usr" + File.separatorChar + "tomcat" + File.separatorChar + "webapps" + File.separatorChar + "Imagenes"  + File.separatorChar + "archivos" + File.separatorChar));
                //factory.setRepository(new File("C:\\PRUEBA\\" ));
                ServletFileUpload upload = new ServletFileUpload(factory);
                //El tamaño maximo de los achivos a cargar
                upload.setSizeMax(1024 * 1024 * 20);
                // ordenamos procesar los ficheros
                List items = upload.parseRequest(request);
                for (int i = 0; i < items.size(); i++){

                    FileItem item = (FileItem) items.get(i);
                    
                    //Si es un archivo lo guardamos como lo tenias
                    if (item.isFormField()){
                        if(item.getFieldName().equalsIgnoreCase("txtTitulo")){
                            oArchivo.setDescripcion(item.getString());
                            System.out.println(oArchivo.getDescripcion());
                        }
                        if(item.getFieldName().equalsIgnoreCase("cmbGrado")){
                            oArchivo.setCodNivelGrado(Integer.parseInt(item.getString()));
                            System.out.println(oArchivo.getCodNivelGrado());
                        }
                        if(item.getFieldName().equalsIgnoreCase("codArchivo")){
//                            if(!item.getString().equals("")){
//                                oArchivo.setCodArchivo(Integer.parseInt(item.getString()));
//                            }
//                            System.out.println(oArchivo.getCodArchivo());
                        }
                        oArchivo.setCodPersona(Integer.parseInt(session.getAttribute("codPersona").toString()));
                        System.out.println(oArchivo.getCodPersona());
                   }
                    //Si no es un archivo solo mostramos su valor (en este caso el del inputy llamado txt)
                    else{
                         String fileName = item.getName();
                          int index = fileName.lastIndexOf(".");
                          String extension = fileName.substring(index);

                        // construimos un objeto file para recuperar el trayecto completo
                        File fichero = new File(fileName);
                        // nos quedamos solo con el nombre y descartamos el path
                        fichero = new File(File.separatorChar + "usr" + File.separatorChar + "tomcat" + File.separatorChar + "webapps" + File.separatorChar + "Imagenes"  + File.separatorChar + "archivos" + File.separatorChar + "archivo" + cod + extension);
                //        fichero = new File("C:\\PRUEBA\\" + "archivo" + cod +  extension);
                        // escribimos el fichero colgando del nuevo path
                        item.write(fichero);
                        //File uploadedFile = new File(directorioDestino, "fotito. Jpg");
                        oArchivo.setNombre("archivo" + cod +  extension);
                    }
                }
            if(oArchivo.getCodArchivo()>0){
                Archivos.actualizaArchivos(oArchivo);
            }else{
                Archivos.registraArchivos(oArchivo);
            }
            
            List<Archivos> LArchivos = new ArrayList<Archivos>();
            LArchivos = Archivos.archivosPersona(Integer.parseInt(session.getAttribute("codPersona").toString()));
            StringBuilder sb = new StringBuilder();
            for(Archivos actual:LArchivos){
                if(actual.getNombre().equals(oArchivo.getNombre())){
                    sb.append("[\"" + "<input type='checkbox' id='nuevafila'   value='" + actual.getCodArchivo() + "-" + actual.getNombre() +"'/>" + "\",\"" + actual.getDescripcion() + "\",\"" + actual.getGrado() + "\",\"" + actual.getNivel()+ "\",\"" + (actual.getActivo().equals("Y")?"Activo":"Inactivo") + "\",\"<a href='javascript:showDialog("+ actual.getCodArchivo() + ");' class='edit_icon' title='Editar'></a>\"],");
                }else{
                    sb.append("[\"" + "<input type='checkbox'  class='file' value='" + actual.getCodArchivo() + "-" + actual.getNombre() +"'/>" + "\",\"" + actual.getDescripcion() + "\",\"" + actual.getGrado() + "\",\"" + actual.getNivel()+ "\",\"" + (actual.getActivo().equals("Y")?"Activo":"Inactivo") + "\",\"<a href='javascript:showDialog("+ actual.getCodArchivo() + ");' class='edit_icon' title='Editar'></a>\"],");
                }
                
            }
            String str = sb.substring(0,sb.length()-1);
            if(str.equals("")){
                str = "[]";
            }else{
                str = "[" + str + "]";
            }
            System.out.println("str: " + str);
            out.println(str);
                //this.getServletContext().getRequestDispatcher("/dinamica/docente/include_aulaVirtual/doc_registraArchivos.jsp").forward(request, response);
            }
        } catch (FileNotFoundException ex) {
            out.println("Solo Archivos de menos de 20 MB");
            ex.printStackTrace();
            System.out.println(ex.getMessage());
        } catch (Exception  exs) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, exs);
            exs.printStackTrace();
            System.out.println(exs.getMessage());
        } finally {
            out.close();
        }
    }

  protected void modificaArchivos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
     Archivos oArchivo = new Archivos();
     HttpSession session = request.getSession(true);
     RequestDispatcher rd;

      boolean isMultipart = ServletFileUpload.isMultipartContent(request);
            if (isMultipart){
                DiskFileItemFactory factory = new DiskFileItemFactory();
                // tamaño por encima del cual los ficheros son escritos directamente en disco
                factory.setSizeThreshold(4096);
                // directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
                factory.setRepository(new File( File.separatorChar + "usr" + File.separatorChar + "tomcat" + File.separatorChar + "webapps" + File.separatorChar + "Imagenes"  + File.separatorChar + "archivos" + File.separatorChar));
                //factory.setRepository(new File("c:\\" ));
                ServletFileUpload upload = new ServletFileUpload(factory);
                //El tamaño maximo de los achivos a cargar
                upload.setSizeMax(1024 * 1024 * 20);
                // ordenamos procesar los fichero
                List items = upload.parseRequest(request);
                for (int i = 0; i < items.size(); i++){

                    FileItem item = (FileItem) items.get(i);

                    //Si no es un archivo solo mostramos su valor (en este caso el del inputy llamado txt)
                    if (item.isFormField()){

                        if(item.getFieldName().equalsIgnoreCase("codArchivo")){
                            oArchivo.setCodArchivo(Integer.parseInt(item.getString()));
                        }

                        if(item.getFieldName().equalsIgnoreCase("txtTitulo")){
                            oArchivo.setDescripcion(item.getString());
                        }
                        if(item.getFieldName().equalsIgnoreCase("cmbGrado")){
                            oArchivo.setCodNivelGrado(Integer.parseInt(item.getString()));
                        }

                        if(item.getFieldName().equalsIgnoreCase("codPersona")){
                            oArchivo.setCodPersona(Integer.parseInt(item.getString()));
                        }

                        if(item.getFieldName().equalsIgnoreCase("nombreArchivo")){
                            oArchivo.setNombre(item.getString());
                        }

                        if(item.getFieldName().equalsIgnoreCase("activo")){
                            oArchivo.setActivo(item.getString());
                        }
                   }
                    //Si es un archivo lo guardamos como lo tenias
                    else{
                         String fileName = item.getName();
                        // construimos un objeto file para recuperar el trayecto completo
                        File fichero = new File(fileName);
                        // nos quedamos solo con el nombre y descartamos el path
                        fichero = new File(File.separatorChar + "usr" + File.separatorChar + "tomcat" + File.separatorChar + "webapps" + File.separatorChar + "Imagenes"  + File.separatorChar + "archivos" + File.separatorChar + oArchivo.getNombre());
                        //fichero = new File("c:\\pruebas\\" + oArchivo.getNombre());
                        // escribimos el fichero colgando del nuevo path
                        item.write(fichero);
                        
                        //File uploadedFile = new File(directorioDestino, "fotito. Jpg");

                    }

                }
                session.setAttribute("mensaje", Archivos.actualizaArchivos(oArchivo) ? "Archivo Actualizado con Exito!!" : "Archivo No Actualizado!!");
                request.setAttribute("r_estilo", true);
                rd=this.getServletContext().getRequestDispatcher("/dinamica/docente/include_aulaVirtual/doc_registraArchivos.jsp");
                rd.forward(request,response);

            }
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }

  protected void detalleGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       
        try {
            int codGaleria = Integer.parseInt(request.getParameter("codGaleria"));
            GaleriaFotos oGaleria = new GaleriaFotos();
            oGaleria = GaleriaFotos.buscaGalerias(codGaleria);

            request.setAttribute("galeria", oGaleria);
 
            this.getServletContext().getRequestDispatcher("/dinamica/administrador/Galeria/GaleriaForm.jsp").forward(request, response);
        } finally {
            out.close();
        }
    }
  
    protected void eliminarGaleria(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        
        PrintWriter out = response.getWriter();
        try {
             String[] codigos = request.getParameter("codigos").split(",");
            for (int i = 0; i < codigos.length; i++) {
                GaleriaFotos.eliminarGaleria(Integer.parseInt(codigos[i]));
            }
            ArrayList<GaleriaFotos> LGalerias  = new ArrayList<GaleriaFotos>();
              LGalerias = GaleriaFotos.listaGalerias();
            StringBuilder sb = new StringBuilder();
            for(GaleriaFotos actual:LGalerias){
                sb.append("[\"" 
                        + "<input type='checkbox' class='file' value='" 
                        + actual.getCodGaleria() + "'/>" 
                        + "\",\"" + actual.getNombreGaleria() 
                        + "\",\"" + actual.getFechaDesdeGaleria() 
                        + "\",\"" + actual.getFechaHastaGalera() 
                        + "\",\"" + actual.getActivo()
                        + "\",\"<a href='javascript:showDialog("+ actual.getCodGaleria() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
            out.println(str);
            System.out.println("str: " + str);
        } finally {
            out.close();
        }
    }
  
  protected void eliminaArchivo(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        HttpSession session = request.getSession(true);
        PrintWriter out = response.getWriter();
        try {            
            String nombreArchivo = request.getParameter("codigos");
            String arr[] = nombreArchivo.split(",");
            for(int i=0;i<arr.length;i++){
                String arr2[] = arr[i].split("-");
                System.out.println(Integer.parseInt(arr2[0]) + " "+ arr2[1]);
                Archivos.eliminaArchivos(Integer.parseInt(arr2[0]), arr2[1]);
            }
            List<Archivos> LArchivos = new ArrayList<Archivos>();
            LArchivos = Archivos.archivosPersona(Integer.parseInt(session.getAttribute("codPersona").toString()));
            StringBuilder sb = new StringBuilder();
            for(Archivos actual:LArchivos){
                sb.append("[\"" + "<input type='checkbox' class='file' value='" + actual.getCodArchivo() + "-" + actual.getNombre() +"'/>" + "\",\"" + actual.getDescripcion() + "\",\"" + actual.getGrado() + "\",\"" + actual.getNivel()+ "\",\"" + (actual.getActivo().equals("Y")?"Activo":"Inactivo") + "\",\"<a href='javascript:showDialog("+ actual.getCodArchivo() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            String str = sb.substring(0,sb.length()-1);
            if(str.equals("")){
                str = "[]";
            }else{
                str = "[" + str + "]";
            }
            System.out.println("str: " + str);
            out.println(str);
            
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }

  protected void listaArchivos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {      
            List<Archivos> LArchivos = new ArrayList <Archivos>();
            int codNivelGrado = Integer.parseInt(request.getParameter("codNivelGrado"));
            String grado = request.getParameter("grado");
            LArchivos = new Archivos().listaArchivosPagina(codNivelGrado,(new Archivos().numeroPaginasArchivos(codNivelGrado)*10)-10);
            request.setAttribute("archivos", LArchivos);
            request.setAttribute("nombreGrado", grado);
            request.setAttribute("pagina", request.getParameter("pagina"));
            request.setAttribute("codNivelGrado", codNivelGrado);
            request.setAttribute("numeroPaginas", new Archivos().numeroPaginasArchivos(codNivelGrado));
            
            this.getServletContext().getRequestDispatcher("/estatica/grahamBellRecursos_Lecturas.jsp").forward(request, response);
            
        } catch (Exception ex) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }
  
   protected void subirArchivosServidor(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        String nombreArchivo = "";
     try {         
      boolean isMultipart = ServletFileUpload.isMultipartContent(request);
            if (isMultipart){
                DiskFileItemFactory factory = new DiskFileItemFactory();
                // tamaño por encima del cual los ficheros son escritos directamente en disco
                factory.setSizeThreshold(4096);
                // directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
                factory.setRepository(new File( File.separatorChar + "usr" + File.separatorChar + "tomcat" + File.separatorChar + "webapps" + File.separatorChar + "Imagenes"  + File.separatorChar + "archivos" + File.separatorChar));
                //factory.setRepository(new File("c:\\" ));
                ServletFileUpload upload = new ServletFileUpload(factory);
                //El tamaño maximo de los achivos a cargar
                upload.setSizeMax(1024 * 1024 * 20);
                // ordenamos procesar los ficheros
                List items = upload.parseRequest(request);
                for (int i = 0; i < items.size(); i++){
                    FileItem item = (FileItem) items.get(i);
                    //Si no es un archivo solo mostramos su valor (en este caso el del inputy llamado txt)
                    if (item.isFormField()){                        
                   }
                    // Si es un archivo lo guardamos como lo teniasSi es un archivo lo guardamos como lo tenias
                    else{
                         String fileName = item.getName();
                         nombreArchivo = fileName;
                         StringTokenizer token = new StringTokenizer(nombreArchivo);
                         nombreArchivo = "";
                        while (token.hasMoreTokens()){
                                nombreArchivo += token.nextToken();
                        }
                         
                        // construimos un objeto file para recuperar el trayecto completo
                        File fichero = new File(fileName);
                        // nos quedamos solo con el nombre y descartamos el path
                        fichero = new File(File.separatorChar + "usr" + File.separatorChar + "tomcat" + File.separatorChar + "webapps" + File.separatorChar + "Imagenes"  + File.separatorChar + "archivos" + File.separatorChar + fileName );
                        //fichero = new File("c:\\pruebas\\" + nombreArchivo );
                        // escribimos el fichero colgando del nuevo path
                        item.write(fichero);                        
                        //File uploadedFile = new File(directorioDestino, "fotito. Jpg");                        
                    }
                }          
                request.setAttribute("direccionEx", "www.grahambell.edu.pe/Imagenes/Imagenes/" + nombreArchivo);
                request.setAttribute("direccionInt", "192.168.1.55/Imagenes/Imagenes/" + nombreArchivo);
                request.setAttribute("direccionSist", "/Imagenes/Imagenes/" + nombreArchivo);
                this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_registroSubirArchivosAnuncio.jsp").forward(request, response);
            }
        } catch (FileNotFoundException ex) {
            request.setAttribute("mensaje", "Solo Archivos de menos de 20 MB");
            request.setAttribute("r_estilo", true);
                this.getServletContext().getRequestDispatcher("/dinamica/administrador/include_mantenimiento/admi_registroSubirArchivosAnuncio.jsp").forward(request, response);
                
        } catch (Exception  exs) {
            Logger.getLogger(ServletSubida.class.getName()).log(Level.SEVERE, null, exs);
        } finally {
            out.close();
        }
    }


    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
